package com.xf.system.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xf.system.common.model.Dept;
import com.xf.system.http.req.dept.DeptListReqDTO;
import com.xf.system.http.vo.dept.DeptTreeVO;
import com.xf.system.http.vo.user.UserDeptDetailVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author xiefengf
 */
@Repository
public interface DeptMapper extends BaseMapper<Dept> {

    /**
     * 查询当前用户对应的所有部门信息
     * @param id 用户主键id
     * @return 部门列表
     */
    List<UserDeptDetailVO> selectDeptByUid(@Param("id") Long id);

    /**
     * 条件查询所有部门数据
     * @param reqDto 部门名称+部门状态
     * @return 部门列表
     */
    List<Dept> selectDeptList(@Param("reqDto") DeptListReqDTO reqDto);

    /**
     * 通过部门id查询部门详情信息
     * @param id 部门id
     * @return 部门详情信息
     */
    DeptTreeVO selectDeptById(@Param("id") Long id);

    /**
     * 根据部门名+父部门id查询部门数据
     * @param deptName 部门名称
     * @param parentId 父部门id
     * @return 部门详细信息
     */
    Dept selectDeptByName(@Param("deptName") String deptName, @Param("parentId")Long parentId);

}
